package com.chaodev.base.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.chaodev.base.dao.NoticeDao;
import com.chaodev.base.dto.NoticeDTO;
import com.chaodev.base.model.Notice;
import com.chaodev.base.service.INoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Service
public class NoticeServiceImpl implements INoticeService {
    @Autowired
    NoticeDao noticeDao;

    @Override
    public PageInfo<NoticeDTO> noticeList(Map<String, Object> map) {
        PageHelper.startPage(Integer.parseInt(map.get("P_PAGE").toString()), Integer.parseInt(map.get("P_PAGESIZE").toString()));
        List<NoticeDTO> list = noticeDao.noticeList(map);
        return new PageInfo<>(list, Integer.parseInt(map.get("P_PAGESIZE").toString()));
    }

    @Override
    public boolean noticeAddMysql(Notice notice) {
        int num = noticeDao.noticeAddMysql(notice);
        return num > 0;
    }

    @Override
    public boolean noticeAddOracle(Notice notice) {
        int num = noticeDao.noticeAddOracle(notice);
        return num > 0;
    }

    @Override
    public boolean noticeDepartUpdate(Notice notice) {
        // 先吧所有部门置为0再插入
        noticeDao.noticeDepartDel(notice);
        int num1 = noticeDao.noticeDepartAdd(notice);
        return num1 > 0;
    }

    @Override
    public boolean noticeRoleUpdate(Notice notice) {
        // 先吧所有角色置为0再插入
        noticeDao.noticeRoleDel(notice);
        int num1 = noticeDao.noticeRoleAdd(notice);
        return num1 > 0;
    }

    @Override
    public boolean noticeDepartDel(Notice notice) {
        int num = noticeDao.noticeDepartDel(notice);
        return num > 0;
    }

    @Override
    public boolean noticeRoleDel(Notice notice) {
        int num =  noticeDao.noticeRoleDel(notice);
        return num > 0;
    }

    @Override
    public boolean noticeTimeout() {
        int num = noticeDao.noticeTimeout();
        return num > 0;
    }

    @Override
    public boolean noticeUpdate(Notice notice) {
        int num = noticeDao.noticeUpdate(notice);
        return num > 0;
    }

    @Override
    public boolean noticeUpd(Notice notice) {
        int num = noticeDao.noticeUpd(notice);
        return num > 0;
    }

    @Override
    public boolean noticeDel(Notice notice) {
        int num = noticeDao.noticeDel(notice);
        return num > 0;
    }

    @Override
    public ArrayList<Notice> noticeListWeb(Map<String, Object> map) {
        return noticeDao.noticeListWeb(map);
    }

    @Override
    public List<Notice> userNoticeList(Map<String, Object> map) {
        return noticeDao.userNoticeList(map);
    }

    @Override
    public boolean noticeDepartAdd(Notice notice) {
        int num = noticeDao.noticeDepartAdd(notice);
        return num > 0;
    }

    @Override
    public boolean noticeRoleAdd(Notice notice) {
        int num = noticeDao.noticeRoleAdd(notice);
        return num > 0;
    }
}
